package org.huawei260.TiKu.ODsuanfa;

import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class B_2023B_2603__栈仿LISP运算 { // 30% python:70%

//	public class Main {
		public static void main(String[] args) {
			Scanner sc = new Scanner(System.in);
			System.out.println(getResult(sc.nextLine()));
		}

		public static String getResult(String s) {
			LinkedList<Character> stack = new LinkedList<>();
			LinkedList<Integer> leftIdx = new LinkedList<>();

			for (int i = 0; i < s.length(); i++) {
				char c = s.charAt(i);

				if (c == ')') {
					List<Character> fragment = stack.subList(leftIdx.removeLast(), stack.size());

					StringBuilder sb = new StringBuilder();
					for (int j = 1; j < fragment.size(); j++) sb.append(fragment.get(j));

					fragment.clear();

					String[] tmp = sb.toString().split(" ");

					String op = tmp[0];
					int p1 = Integer.parseInt(tmp[1]);
					int p2 = Integer.parseInt(tmp[2]);

					String res = operate(op, p1, p2);
					if ("error".equals(res)) {
						return "error";
					} else {
						for (int k = 0; k < res.length(); k++) stack.add(res.charAt(k));
					}
				} else if (c == '(') {
					leftIdx.add(stack.size());
					stack.add(c);
				} else {
					stack.add(c);
				}
			}

			StringBuilder ans = new StringBuilder();
			for (Character c : stack) ans.append(c);
			return ans.toString();
		}

		public static String operate(String op, int p1, int p2) {
			switch (op) {
				case "add":
					return p1 + p2 + "";
				case "sub":
					return p1 - p2 + "";
				case "mul":
					return p1 * p2 + "";
				case "div":
					return p2 == 0 ? "error" : (int) Math.floor(p1 / (p2 + 0.0)) + "";
				default:
					return "error";
			}
		}
	}


//	import math
//
//		# 输入获取
//		s = input()
//
//
//		def operate(op, p1, p2):
//		p1 = int(p1)
//		p2 = int(p2)
//		if op == "add":
//		return str(p1 + p2)
//		elif op == "sub":
//		return str(p1 - p2)
//		elif op == "mul":
//		return str(p1 * p2)
//		elif op == "div":
//		if p2 == 0:
//		return "error"
//		else:
//		return str(int(math.floor(p1 / p2)))
//		else:
//		return "error"
//
//
//		# 算法入口
//		def getResult():
//		stack = []
//		leftIdx = []
//
//		for i in range(len(s)):
//		if s[i] == ')':
//		l = leftIdx.pop()
//		fragment = stack[l:]
//		del stack[l:]
//
//		op, p1, p2 = "".join(fragment[1:]).split(" ")
//
//		res = operate(op, p1, p2)
//
//		if res == "error":
//		return "error"
//		else:
//		stack.extend(list(res))
//		elif s[i] == '(':
//		leftIdx.append(len(stack))
//		stack.append(s[i])
//		else:
//		stack.append(s[i])
//
//		return "".join(stack)
//
//
//		# 调用算法
//		print(getResult())